package com.swanclouds.model.chassis;

import com.swanclouds.model.DeviceEntity;
import com.swanclouds.model.ModelEntity;

import java.util.Map;

/**
 *  驱动器资源信息
 */
public interface Drives extends DeviceEntity {
    /**
     * 驱动器型号
     * @return String
     */
    String getModel();

    /**
     * 驱动器序列号
     * @return String
     */
    String getSerialNumber();

    /**
     * 驱动器容量 单位字节
     * @return Long
     */
    Long getCapacityBytes();

    /**
     * 驱动器的版本信息
     * @return String
     */
    String getRevision();

    /**
     * 驱动器遵从的协议
     * @return String
     */
    String getProtocol();

    /**
     * 驱动器的介质类型
     * @return String
     */
    String getMediaType();

    /**
     * OEM自定义信息
     * @return java.util.Map
     */
    Map<String, Object> getOem();

    public interface Status extends ModelEntity {
        /**
         * 驱动器使能状态
         * @return String
         */
        String getState();

        /**
         * 驱动器健康状态
         * @return String
         */
        String getHealth();

        /**
         * 驱动器的自定义健康状态
         * @return String
         */
        String getSeverity();
    }
}
